Information decoder for polar codes

ABSTRACT

There is provided mechanisms for decoding an encoded sequence into a decoded sequence. A method is performed by an information decoder. The method comprises obtaining the encoded sequence. The encoded sequence has been encoded using a polar code. The method comprises successively decoding the encoded sequence into the decoded sequence. The decoding is performed for a given list size, LS, where LS&gt;1, defining how many candidate decoded sequences in total the thus far decoded sequence is allowed to branch into during the decoding. The encoded sequence is decoded, until its first branching, by at least as many processing units in parallel as a factor, f, of the given list size. The factor is at least half the given list size, f≥LS/2.

TECHNICAL FIELD

Embodiments presented herein relate to a method, an information decoder,a computer program, and a computer program product for decoding anencoded sequence into a decoded sequence.

BACKGROUND

In communications networks, there may be a challenge to obtain goodperformance and capacity for a given communications protocol, itsparameters and the physical environment in which the communicationsnetwork is deployed.

For example, in digital communication the data to be communicated from asender to a receiver can be divided into smaller data segments which aresent in packets. These data segments are provided with information ofhow the data protocol used for transferring the data from the sender tothe receiver should map the packets and, in some cases, analyze if thedata content of the packet is correct or not. This information cantypically be predicted or known by the receiver. For example when usingthe Internet Protocol (IP), IP-packet headers are needed for each devicealong the way from the sender to the receiver to route the packet. Insome communications networks, such as in Long Term Evolution (LTE) radioaccess networks, a served wireless device will typically never receivean IP-packet with the wrong IP-address (which is exploited by so-calledheader-compression).

Polar codes, as presented in “Channel polarization: A method forconstructing capacity-achieving codes for symmetric binary-inputmemoryless channels,” IEEE Trans. Inform. Theory, vol. 55, pp.3051-3073, 2009, are capacity achieving codes, have an explicitconstruction (i.e., not randomly generated), and have an efficientencoding and decoding algorithm. Apart from the capacity achievingproperty, which is valid when code-lengths tend to infinity, they haveshown good performance for shorter code-lengths.

One issue with existing mechanisms for decoding polar codes lies in thesuccessive decoding (SD) procedure which follows the bit-order of thepolar codes. Decoding of polar codes is prone to error propagation andhence, an error made early in the successive decoding procedure will notbe corrected, but will instead propagate all the way to the end of thedecoding. This will result in a decoding error. Additionally it is morelikely to make an error early in the procedure than at the end, see FIG.2. FIG. 2 shows an example of the amount of information for a bit withindex i (for i=1, 2, . . . N where N is the total number of binarydigits, and N=1024 in the example) can carry, given that all theprevious binary digits 1, 2, . . . , i−1 are known, i.e., where thepolar code decoding order is followed.

According to “List decoding of polar codes” by I. Tal and A Vardy,arXiv: 1206.0050, 31 May 2012, a procedure that splits the paths in abinary tree is proposed. The technique keeps track of the most probablepaths currently known and disregards the rest. Splitting paths iscommonly referred to as branching.

Typically, procedures that use branching with a limited amount ofallowed candidate branches and whose criterion for branching is based ona metric that is computed on-the-fly (i.e. not known a priori) aredifficult to parallelize. This is especially eminent in traditional listdecoding since at each bit a comparison between the candidate branches(where each candidate branch represents a separate process) is required.Metrics need to be communicated between the different branches (thusbetween the different processes), which creates dependencies betweenprocesses performed in parallel. Dependencies between parallel processesmight cause computations to stall and might therefore limit theparallelization gain significantly.

In international patent application PCT/EP2016/059656, the branchingcriterion is process-independent, but not at the positions wherebranching is performed (whose number is equal to log₂(list-size)). Thisrequires much less communication between processes as compared totraditional list decoding, which requires communication at everybit-position. For a code of length 128 and a list size of 8, the numberof communication points reduces from 128 to log₂(8)=3. However, the dataamount that needs to be communicated from one process to another canstill be rather large since it consists of the partial candidate thathas been decoded so far at the branching point.

Hence, there is still a need for improved mechanisms for decoding datahaving been encoded using polar codes.

SUMMARY

An object of embodiments herein is to provide efficient decoding ofpolar codes that does not suffer from the issues noted above, or atleast where these issues are mitigated or reduced.

According to a first aspect there is presented a method for decoding anencoded sequence into a decoded sequence. The method is performed by aninformation decoder. The method comprises obtaining the encodedsequence. The encoded sequence has been encoded using a polar code. Themethod comprises successively decoding the encoded sequence into thedecoded sequence. The decoding is performed for a given list size, LS,where LS>1, defining how many candidate decoded sequences in total thethus far decoded sequence is allowed to branch into during the decoding.The encoded sequence is decoded, until its first branching, by at leastas many processing units in parallel as a factor, f, of the given listsize. The factor is at least half the given list size, that is f≥LS/2.

According to a second aspect there is presented an information decoderfor decoding an encoded sequence into a decoded sequence. Theinformation decoder comprises processing circuitry. The processingcircuitry is configured to cause the information decoder to obtain theencoded sequence. The encoded sequence has been encoded using a polarcode. The processing circuitry is configured to cause the informationdecoder to successively decode the encoded sequence into the decodedsequence. The decoding is performed for a given list size, LS, whereLS>1, defining how many candidate decoded sequences in total the thusfar decoded sequence is allowed to branch into during the decoding. Theencoded sequence is decoded, until its first branching, by at least asmany processing units in parallel as a factor, f, of the given listsize. The factor is at least half the given list size, that is f≥LS/2.

According to a third aspect there is presented an information decoderfor decoding an encoded sequence into a decoded sequence. Theinformation decoder comprises an obtain module configured to obtain theencoded sequence. The encoded sequence has been encoded using a polarcode. The information decoder comprises a decode module configured tosuccessively decoding the encoded sequence into the decoded sequence.The decoding is performed for a given list size, LS, where LS>1,defining how many candidate decoded sequences in total the thus fardecoded sequence is allowed to branch into during the decoding. Theencoded sequence is decoded, until its first branching, by at least asmany processing units in parallel as a factor, f, of the given listsize. The factor is at least half the given list size, that is f≥LS/2.

Advantageously this provides efficient decoding of a sequence havingbeen encoded using a polar code into a decoded sequence.

Advantageously this enables more computationally efficient decoding tobe performed than for the decoding methods disclosed in the backgroundsection.

Advantageously this enables independent parallel processes to be used.

Advantageously this enables much higher parallelization gains to beharvested than for the decoding methods disclosed in the backgroundsection.

According to a fourth aspect there is presented a computer program fordecoding an encoded sequence into a decoded sequence, the computerprogram comprising computer program code which, when run on aninformation decoder, causes the information decoder to perform a methodaccording to the first aspect.

According to a fifth aspect there is presented a computer programproduct comprising a computer program according to the fourth aspect anda computer readable storage medium on which the computer program isstored. The computer readable storage medium could be a non-transitorycomputer readable storage medium.

Other objectives, features and advantages of the enclosed embodimentswill be apparent from the following detailed disclosure, from theattached dependent claims as well as from the drawings.

Generally, all terms used in the claims are to be interpreted accordingto their ordinary meaning in the technical field, unless explicitlydefined otherwise herein. All references to “a/an/the element,apparatus, component, means, module, step, etc.” are to be interpretedopenly as referring to at least one instance of the element, apparatus,component, means, module, step, etc., unless explicitly statedotherwise. The steps of any method disclosed herein do not have to beperformed in the exact order disclosed, unless explicitly stated.

BRIEF DESCRIPTION OF THE DRAWINGS

The inventive concept is now described, by way of example, withreference to the accompanying drawings, in which:

FIG. 1 is a schematic diagram illustrating a communications networkaccording to embodiments;

FIG. 2 is a schematic diagram illustrating mutual information accordingto an embodiment;

FIG. 3 is a schematic diagram illustrating a polar code;

FIG. 4 is a flowchart of methods according to embodiments;

FIG. 5 is a schematic diagrams illustrating list decoding according toembodiments;

FIG. 6 is a schematic diagrams illustrating use of processing units forlist decoding according to embodiments;

FIG. 7 is a schematic diagram showing functional units of an informationdecoder according to an embodiment;

FIG. 8 is a schematic diagram showing functional modules of aninformation decoder according to an embodiment; and

FIG. 9 shows one example of a computer program product comprisingcomputer readable storage medium according to an embodiment.

DETAILED DESCRIPTION

The inventive concept will now be described more fully hereinafter withreference to the accompanying drawings, in which certain embodiments ofthe inventive concept are shown. This inventive concept may, however, beembodied in many different forms and should not be construed as limitedto the embodiments set forth herein; rather, these embodiments areprovided by way of example so that this disclosure will be thorough andcomplete, and will fully convey the scope of the inventive concept tothose skilled in the art. Like numbers refer to like elements throughoutthe description. Any step or feature illustrated by dashed lines shouldbe regarded as optional.

FIG. 1 is a schematic diagram illustrating a communications network 100where embodiments presented herein can be applied. The communicationsnetwork 100 comprises an information encoder 110 and an informationdecoder 200. The information encoder 110 is configured to encode aninformation sequence z=z₁, z₂, z₃, . . . , z_(N) into an encodedsequence y. The information decoder 200 is configured to decode anencoded sequence ŷ into a decoded sequence {circumflex over (z)}.

The information encoder 110 and the information decoder 200 areseparated by a symbolic communications channel 120. The communicationschannel 120 models how the encoded sequence y is affected between theinformation encoder 110 and the information decoder 200. For example,the transmission of the encoded sequence y may cause errors to beinserted in the encoded sequence y. Here, and error is to be interpretedas a bit-value in the encoded sequence y being flipped from a binaryzero to a binary one, or vice versa, during transmission over thecommunications channel 120. Therefore the encoded sequence y as obtainedby the information decoder 200 is denoted ŷ, where ŷ=y if the channel iserror-free and ŷ≠y elsewhere. Further, if ŷ=y then also {circumflex over(z)}=z, but if ŷ≠y there is a non-zero probability that {circumflex over(z)}≠z. In order to minimize the probability that {circumflex over(z)}≠z the information encoder 110 during the encoding procedure addsredundancy to the information sequence z in a controlled manner,resulting in the encoded sequence y. The redundancy is added in thecontrolled manner by using a polar code. Conversely, at the informationdecoder 200 the added redundancy is removed from the received encodedsequence ŷ in a controlled manner, resulting in the decoded sequence{circumflex over (z)}. Further, the communications network 100 comprisesa (optional) data storage 130. The data storage 130 is assumed to storedata losslessly, i.e., without introducing losses in the stored data.Any losses in the data are modelled by the communications channel 120.

The information encoder 110 and the information decoder 200 use a polarcode to protect the information sequence z against channel distortions.The information encoder 110 will encode the information sequence z usinga predetermined polar code into the encoded sequence y which will thenbe used in a transmission over the communications channel 120. Thereceived encoded sequence ŷ, which, as disclosed above, can be distortedwhen passing through the communications channel 120, will be decoded bythe information decoder 200 using a polar code successive decoder.

FIG. 3 is a schematic diagram illustrating a polar code 300, where wrepresents the communications channel 120. In the example of FIG. 3,some of z₁, z₂, z₃, . . . , z_(N) represents information bits and therest of z₁, z₂, z₃, . . . , z_(N) represents added redundancy bits(having fixed, and thus known, values). Using the polar code example inFIG. 3, the information decoder 200, based on the received encodedsequence ŷ, estimates the probabilities of the encoded sequence y andthen propagates these backwards throughout the polar code structure tocalculate the probabilities of the information sequence z. The decisionmade on z₁ based on the calculated probability is propagated downwardswhen the probabilities of z₂, z₃, . . . , z_(N) are evaluated. The sameis repeated for z₂ and so on, which defines the underlying successivedecoding procedure. The better the information decoder 200 is, i.e., themore errors in the received encoded sequence ŷ it can correct, the moreinformation can be conveyed over the communication channel w.

As disclosed above, there is a need for improved mechanisms for decodingdata having been encoded using polar codes 300.

The embodiments disclosed herein therefore relate to mechanisms fordecoding an encoded sequence ŷ into a decoded sequence {circumflex over(z)}. In order to obtain such mechanisms there is provided aninformation decoder 200, a method performed by the information decoder200, a computer program product comprising code, for example in the formof a computer program, that when run on an information decoder 200,causes the information decoder 200 to perform the method.

FIG. 4 is a flowchart illustrating embodiments of methods for decodingan encoded sequence ŷ into a decoded sequence {circumflex over (z)}. Themethods are performed by the information decoder 200. The methods areadvantageously provided as computer programs 920.

S102: The information decoder 200 obtains the encoded sequence ŷ. Theencoded sequence ŷ has been encoded using a polar code 300.

S108: The information decoder 200 successively decodes the encodedsequence ŷ into the decoded sequence {circumflex over (z)}.

The successive decoding is based on using a branching criterion toexpand a list of candidate decoded sequences with a new candidatedecoded sequence. In particular, the decoding is performed for a givenlist size (LS; where LS>1), defining how many candidate decodedsequences in total the thus far decoded sequence is allowed to branchinto during the decoding.

The decoding is thus performed in parallel using a suitable number ofprocessing units (PUs) 210 a, 210 b, . . . , 210N. All processes (whereeach process is defined by one of the PUs 210 a, 210 b, . . . , 210N)are assumed to have their own replica of the decoding problem (asdefined by the obtained encoded sequence ŷ), from the outset of thedecoding procedure. During the decoding, in the polar code order, eachprocess will branch according to a given branching criterion. Inparticular, the encoded sequence ŷ is decoded, until its firstbranching, by at least as many PUs 210 a, 210 b, . . . , 210N inparallel as a factor (denoted f) of the given list size. The factor isat least half the given list size. That is, f≥LS/2.

In this way, there will not be any need of communication between thedifferent processes (thus, PUs 210 a, 210 b, . . . , 210N), at least notuntil all of them have reached the end of the decoding where thefull-length candidate decoded sequences are compared and the best one isselected, as will be disclosed below.

Embodiments relating to further details of decoding an encoded sequenceŷ into a decoded sequence {circumflex over (z)} as performed by theinformation decoder 200 will now be disclosed.

In some aspects the factor f is larger than half the given list size.That is, in some aspects f>LS/2. Particularly, according to anembodiment the factor is at least three quarters of the given lists size(that is, f≥LS·¾), preferably the factor is equal to the give list size(that is, f=LS). In the latter case the encoded sequence ŷ is decoded,until its first branching, by at least as many PUs 210 a, 210 b, . . . ,210N in parallel as the given list size. However, depending on the listssize there could still be PUs available that are not used for thedecoding.

There may be different ways for the information decoder 200 to determinewhich of the PUs 210 a, 210 b, . . . , 210N to use for which candidatedecoded sequences. In some aspects the information decoder 200 uses apredetermined direction pattern for each PU 210 a, 210 b, . . . , 210N.Particularly, according to an embodiment each PU 210 a, 210 b, . . . ,210N has a fixed pattern defining which of the candidate decodedsequences to decode following a next branching of the thus far decodedsequence.

The PUs 210 a, 210 b, . . . , 210N to perform the decoding are therebyprovided with information about what direction to take after eachbranching and are thereby enabled to perform the decoding withoutinteraction with any other PU 210 a, 210 b, . . . , 210N (and thuswithout knowing how many other PUs 210 a, 210 b, . . . , 210N performthe decoding or how these other PUs 210 a, 210 b, . . . , 210N selectwhat direction to take after each branching).

In this respect, it might be that no two PUs 210 a, 210 b, . . . , 210Nhave the same fixed pattern. But this might depend on how many PUs 210a, 210 b, . . . , 210N in total are available for the decoding and howmany PUs 210 a, 210 b, . . . , 210N the information decoder 200 deemsnecessary to use for the decoding, see step S106 below.

In some aspects each candidate decoded sequence is after branchingdecoded using its own (subset of) PU(s) 210 a, 210 b, . . . , 210N.Particularly, according to an embodiment each branching results in twocandidate decoded sequences. These two candidate decoded sequences arethen decoded in parallel by its own subset of the PUs 210 a, 210 b, . .. , 210N. Each subset comprises half as many PUs 210 a, 210 b, . . . ,210N as before each respective branching. Thus, at the end it could bethat each subset only comprises one single PU 210 a, 210 b, . . . ,210N.

There could be different conditions for the information decoder 200 toperform the branching. In some aspects the condition for branching isthat a threshold check fails. Hence, according to an embodiment thedecoded sequence {circumflex over (z)} is branched into two candidatedecoded sequences whenever a threshold check fails. The threshold checkis performed on binary digits as they are being decoded.

There could be different strategies as to when, or ow often, thethreshold check is to be performed during the decoding.

In some aspects the threshold check is performed only at predetermined(thus, fixed) bit-positions. That is, according to an embodiment thethreshold check is performed for binary digits on fixed places as theyare being decoded.

In other aspects the threshold check is continuously performed, as inaforementioned international patent application PCT/EP2016/059656. Thatis, according to an embodiment the threshold check is performed for atleast some successive binary digits as they are being decoded.

There could be different examples of threshold checks. In some aspectsthe threshold check is based on a bit uncertainty criterion.Particularly, according to an embodiment the threshold check, when beingperformed, evaluates a bit uncertainty criterion of those binary digitsthat are being decoded. Examples of bit uncertainty criteria will bedisclosed below.

There could be different causes of the branching. For example, accordingto an embodiment the branching is caused by a binary digit for which thethreshold check fails having an equal probability of being decoded intoa zero and a one during the successive decoding of the encoded sequenceŷ. In this respect the term equal probability can be defined as aprobability value of decoding a binary digit to a one being in theinterval 0.35-0.65, preferably in the interval 0.4-0.6, more preferablyin the interval 0.45-0.55.

Therefore, in some aspects the information decoder 200 a determines oneprobability value for each of the at least some successive binary digitsas they are being decoded. Such estimated probabilities can be acquiredduring the successive decoding of the polar code 300. The bituncertainty criterion for a given binary digit of said at least somesuccessive binary digits can then be evaluated using this oneprobability value for this given binary digit. The branching can then bebased on various uncertainty metrics of the binary digits that are beingdecoded.

Each branching causes two separate decoding problems to be created fromthe parent decoding problem; one with the uncertain bit being set tobinary 0 and another with the same uncertain bit set to binary 1.Particularly, according to an embodiment the branching causes a binarydigit for which the threshold check fails to be set to binary 0 in afirst of the two candidate decoded sequences and set to binary 1 in asecond of the two candidate decoded sequences.

There can be different ways to evaluate the bit uncertainty criterionfor a given binary digit. For example, the uncertainty criterion can beevaluated using a log-likelihood ratio, entropy, sell-information, orprobability measure. The information decoder 200 might therefore beconfigured to determine at least one of a log-likelihood ratio, entropy,sell-information, or probability measure using the probability value ofa given binary digit. The threshold check then fails whenever theabsolute value of the log-likelihood ratio, the entropy, thesell-information, or the probability measure is lower than a threshold.Examples of such thresholds will be disclosed next.

For instance, the log-likelihood ratio value LLR_(i) of a given binarydigit at index i represents the certainty of that given binary digitbeing a binary 0 or a binary 1. If the log-likelihood ratio value isclose to zero, which is an indication that the threshold check fails,branching is performed at this given binary digit. Further examples ofthreshold checks are:

|LLR_(i)|

η, where LLR_(i) is the log-likelihood ratio value of the binary digitat index i, where the log-likelihood ratio value are determined

H_(i)

μ, where H_(i) is the entropy value of the binary digit at index i,

I_(i)

υ, where I_(i) is the sell-information value of the binary digit atindex i.

Here, the notation

means that a decision is taken based on a comparison with a threshold.Denote by p_(i) the probability of the binary digit at index i beingdecoded into binary 1. The log-likelihood ratio values could then bedetermined from the estimated probabilities that are acquired in thesuccessive decoding of the polar code, i.e.,

${LLR_{i}} = {{\log\left( \frac{p_{i}}{1 - p_{i}} \right)}.}$The entropy value can be determined assuming a binary symmetric channel,i.e., H_(i)=−p_(i) log₂p_(i)−(1−p_(i))log₂(1−p_(i)). Thesell-information can be determined as I_(i)=1−H_(i).

There may be different ways for the information decoder 200 to determinehow many PUs 210 a, 210 b, . . . , 210N to use for decoding the encodedsequence ŷ. In some aspects the channel 120 is a radio propagationchannel. Hence, according to an embodiment the encoded sequence ŷ isreceived over a radio propagation channel 120. How many PUs 210 a, 210b, . . . , 210N to use for decoding the encoded sequence ŷ might thendepend on the channel quality. Hence, according to an embodiment theinformation decoder 200 is configured to perform (optional) steps S104,S106:

S104: The information decoder 200 obtains a channel estimate of theradio propagation channel 120. Different ways to obtain channelestimates of a radio propagation channel 120 are known to the skilledperson.

S106: The information decoder 200 determines at least one of the listsize and how many PUs 210 a, 210 b, . . . , 210N to decode the encodedsequence ŷ until its first branching based on the channel estimate. Inthis respect, the worse the channel quality is, the higher number of PUs210 a, 210 b, . . . , 210N are used (and the larger the list size is) todecode the encoded sequence ŷ until its first branching.

After the successive decoding in step S108 has been completed, theinformation decoder 200 can be configured to select the candidatedecoded sequence which has the highest probability of being correct (byfor instance accumulating the probabilities over the binary digits inthat candidate decoded sequence). Hence, according to an embodiment theinformation decoder 200 is configured to perform steps S110, S112 andS114 after having performed step S104 (and optionally, steps S106,S108):

S110: The information decoder 200 checks if all binary digits of theencoded sequence ŷ have been decoded. If no, step S112 is entered. Ifyes, step S114 is entered.

S112: The information decoder 200 repeats the successively decoding (instep S104, and optionally, steps S106, S108) until all binary digits ofthe encoded sequence ŷ have been decoded. This results in at least twocandidate decoded sequences.

S114: The information decoder 200 discards all but one of the at leasttwo candidate decoded sequences, resulting in one single decodedsequence {circumflex over (z)}.

After the list decoding is performed, the information decoder 200 canthereby select the candidate sequence which has the highest probabilityof being correct. There could be different ways for the informationdecoder 200 to discard all but one of the at least two candidate decodedsequences will now be disclosed. In some aspects the information decoderaccumulates the probabilities over the binary digits in the candidatedecoded sequences. In some aspects the information decoder 200 performsa cyclic redundancy check at the end. This can be an even more confidentway of picking a single candidate decoded sequence amongst a pluralityof candidate decoded sequences.

FIG. 5 shows a general illustration of list decoding of a polar code 300wherein a sequence of uncertain binary digits may result in sub-trees ofcandidate decoded sequences. In more detail, FIG. 5 at 500 illustrates asequence of the encoded sequence that is being decoded. At the outset,the sequence is decoded by all PUs 210 a, 210 b, . . . , 210N inparallel. For some of the binary digits the threshold check issuccessful and these binary digits are identified as fixed bits. Asdisclosed above, the bit-positions where the threshold check isperformed could be fixed. Alternatively, the threshold check isperformed is continuously performed, and thus performed at each of thebit-positions. A successive sequence of such fixed bits defines one path510. For some of the binary digits the threshold check fails and thesebinary digits are identified as uncertain bits. For each failure of thethreshold check a branching of the decoded sequence into two candidatedecoded sequences is performed, resulting in multiple paths 520 a, 520 bfor the uncertain bits needed to be evaluated. Each such path 520 a, 520b is decoded using its own subset of the PUs 210 a, 210 b, . . . , 210N.At the end of the decoding, one path 530 of the multiple paths 520 a,520 b is selected, based on having accumulated probability values ashighly likely (in comparison to all other candidate decoded sequences),to represent the decoded sequence, as in step S114.

As a further illustrative example, assume a polar code 300 of length 128and an information decoder 200 using a list size of four, i.e. LS=4.Assume further that there are four PUs (denoted PU1, PU2, PU3, PU4,respectively) available to process the candidate decoded sequences inparallel. Assume further that, according to the branching criterion usedand the encoded sequence ŷ, the first branching will occur atbit-position 27. Assume further that the branching criterion is suchthat the information decoder 200 will only know this once it is at thisbit-position. That will create two branches from bit-position 27 andonwards; one with the bit at position 27 set to binary 1 and the otherwith the bit at position 27 set to binary 0.

All four PUs will then decode the same partial codeword up tobit-position 27. Once bit-position 27 is reached, two of the PUs (say,PU1, PU2) will continue decoding the candidate decoded sequence whosebit at bit-position 27 is set to binary 1 (for illustrative purposesdenoted the left pair) and the other two PUs (say, PU3, PU4) willcontinue decoding the candidate decoded sequence whose bit atbit-position 27 is set to binary 0 (for illustrative purposes denotedthe right pair).

Assume further that the branching criterion will cause the left pair tonext branch at bit-position 43 and the right pair to next branch atbit-position at bit-position 51. Then one of the PUs (say, PU1) of theleft pair will set the bit at bit-position 43 to binary 1 and the otherPU (say, PU2) of the left pair will set the bit at bit-position 43 tobinary 0. PU1 and PU2 will then continue to decode the remainder oftheir respective candidate decoded sequence. Analogously, one of the PUs(say, PU3) of the right pair is assumed to, according to the branchingcriterion, will set the bit at bit-position 51 to binary 1 and the otherPU (say, PU4) of the right pair will set the bit at bit-position 51 tobinary 0. PU3 and PU4 will then continue to decode the remainder oftheir respective candidate decoded sequence. In this illustrativeexample the predetermined direction patterns of the PUs is hence PU1:[left, left], PU2: [left, right], PU3: [right, left], and PU4: [right,right]. This is schematically illustrated in FIG. 6 which at 600 aillustrates the direction pattern of PU1, at 600 b illustrates thedirection pattern of PU2, at 600 c illustrates the direction pattern ofPU3, and at 600 d illustrates the direction pattern of PU4 for branchingoccurring at bit-positions u₀, u₁, u₂, and u₃.

FIG. 7 schematically illustrates, in terms of a number of functionalunits, the components of an information decoder 200 according to anembodiment. Processing circuitry 210 is provided using any combinationof one or more of a suitable central processing unit (CPU),multiprocessor, microcontroller, digital signal processor (DSP), etc.,capable of executing software instructions stored in a computer programproduct 910 (as in FIG. 9), e.g. in the form of a storage medium 230.The processing circuitry 210 may further be provided as at least oneapplication specific integrated circuit (ASIC), or field programmablegate array (FPGA). In particular, the processing circuitry 210 isassumed to comprise N processing units 210 a-210N, where N>1.

Particularly, the processing circuitry 210 is configured to cause theinformation decoder 200 to perform a set of operations, or steps,S102-S114, as disclosed above. For example, the storage medium 230 maystore the set of operations, and the processing circuitry 210 may beconfigured to retrieve the set of operations from the storage medium 230to cause the information decoder 200 to perform the set of operations.The set of operations may be provided as a set of executableinstructions.

Thus the processing circuitry 210 is thereby arranged to execute methodsas herein disclosed. The storage medium 230 may also comprise persistentstorage, which, for example, can be any single one or combination ofmagnetic memory, optical memory, solid state memory or even remotelymounted memory. The information decoder 200 may further comprise acommunications interface 220 at least configured for communications withan information encoder 110. As such the communications interface 220 maycomprise one or more transmitters and receivers, comprising analogue anddigital components. The processing circuitry 210 controls the generaloperation of the information decoder 200 e.g. by sending data andcontrol signals to the communications interface 220 and the storagemedium 230, by receiving data and reports from the communicationsinterface 220, and by retrieving data and instructions from the storagemedium 230. Other components, as well as the related functionality, ofthe information decoder 200 are omitted in order not to obscure theconcepts presented herein.

FIG. 8 schematically illustrates, in terms of a number of functionalmodules, the components of an information decoder 200 according to anembodiment. The information decoder 200 of FIG. 8 comprises a number offunctional modules; an obtain module 240 a configured to perform stepS102 and a decode module 240 d configured to perform step S108. Theinformation decoder 200 of FIG. 8 may further comprise a number ofoptional functional modules, such as any of an obtain module 240 bconfigured to perform step S104, a determine module 240 c configured toperform step S106, a repeat module 240 e configured to perform stepS112, and a discard module 240 f configured to perform step S114.

In general terms, each functional module 240 a-240 f may in oneembodiment be implemented only in hardware and in another embodimentwith the help of software, i.e., the latter embodiment having computerprogram instructions stored on the storage medium 230 which when run onthe processing circuitry makes the information decoder 200 perform thecorresponding steps mentioned above in conjunction with FIG. 7. Itshould also be mentioned that even though the modules correspond toparts of a computer program, they do not need to be separate modulestherein, but the way in which they are implemented in software isdependent on the programming language used. Preferably, one or more orall functional modules 240 a-240 f may be implemented by the processingcircuitry 210, possibly in cooperation with the communications interface220 and/or the storage medium 230. The processing circuitry 210 may thusbe configured to from the storage medium 230 fetch instructions asprovided by a functional module 240 a-240 f and to execute theseinstructions, thereby performing any steps as disclosed herein.

The information decoder 200 may be provided as a standalone device or asa part of at least one further device. For example, the informationdecoder 200 may be provided in a radio access network node (such as in aradio base station, a base transceiver station, a node B, or an evolvednode B) or in an end-user device (such as in a portable wireless device,a mobile station, a mobile phone, a handset, a wireless local loopphone, a user equipment (UE), a smartphone, a laptop computer, a tabletcomputer, a sensor device, an Internet of Things device, or a wirelessmodem).

Thus, a first portion of the instructions performed by the informationdecoder 200 may be executed in a first device, and a second portion ofthe of the instructions performed by the information decoder 200 may beexecuted in a second device; the herein disclosed embodiments are notlimited to any particular number of devices on which the instructionsperformed by the information decoder 200 may be executed. Hence, themethods according to the herein disclosed embodiments are suitable to beperformed by an information decoder 200 residing in a cloudcomputational environment. Therefore, the processing circuitry 210 maybe distributed among a plurality of devices, or nodes. The same appliesto the functional modules 240 a-240 f of FIG. 8 and the computer program920 of FIG. 9 (see below).

FIG. 9 shows one example of a computer program product 910 comprisingcomputer readable storage medium 930. On this computer readable storagemedium 930, a computer program 920 can be stored, which computer program920 can cause the processing circuitry 210 and thereto operativelycoupled entities and devices, such as the communications interface 220and the storage medium 230, to execute methods according to embodimentsdescribed herein. The computer program 920 and/or computer programproduct 910 may thus provide means for performing any steps as hereindisclosed.

In the example of FIG. 9, the computer program product 910 isillustrated as an optical disc, such as a CD (compact disc) or a DVD(digital versatile disc) or a Blu-Ray disc. The computer program product910 could also be embodied as a memory, such as a random access memory(RAM), a read-only memory (ROM), an erasable programmable read-onlymemory (EPROM), or an electrically erasable programmable read-onlymemory (EEPROM) and more particularly as a non-volatile storage mediumof a device in an external memory such as a USB (Universal Serial Bus)memory or a Flash memory, such as a compact Flash memory. Thus, whilethe computer program 920 is here schematically shown as a track on thedepicted optical disk, the computer program 920 can be stored in any waywhich is suitable for the computer program product 910.

The inventive concept has mainly been described above with reference toa few embodiments. However, as is readily appreciated by a personskilled in the art, other embodiments than the ones disclosed above areequally possible within the scope of the inventive concept, as definedby the appended patent claims.

The invention claimed is:
 1. A method for decoding an encoded sequenceinto a decoded sequence, the method comprising an information decoder:obtaining the encoded sequence, the encoded sequence having been encodedusing a polar code; and successively decoding the encoded sequence intothe decoded sequence; wherein the decoding is performed for a given listsize (LS) defining how many candidate decoded sequences in total thethus far decoded sequence is allowed to branch into during the decoding,wherein LS>1; and wherein the encoded sequence is decoded, until itsfirst branching, by at least as many processing units (PUs) in parallelas a factor of the given list size; wherein the factor is at least halfthe given list size.
 2. The method of claim 1, wherein each PU has afixed pattern defining which of the candidate decoded sequences todecode following a next branching of the thus far decoded sequence. 3.The method of claim 2, wherein no two PUs have the same fixed pattern.4. The method of claim 1: wherein each branching results in twocandidate decoded sequences; wherein the two candidate decoded sequencesare decoded in parallel by a respective subset of the PUs; and whereineach subset comprises half as many PUs as before the each branching. 5.The method of claim 4, wherein the decoded sequence is branched into twocandidate decoded sequences whenever a threshold check fails, thethreshold check being performed on binary digits as being decoded. 6.The method of claim 5, wherein the threshold check is performed forbinary digits on fixed places as being decoded.
 7. The method of claim5, wherein the threshold check is performed for at least some successivebinary digits as being decoded.
 8. The method of claim 6, wherein thethreshold check, when being performed, evaluates a bit uncertaintycriterion of those binary digits that are being decoded.
 9. The methodof claim 5, wherein the branching is caused by a binary digit for whichthe threshold check fails having an equal probability of being decodedinto a zero and a one during the successive decoding of the encodedsequence.
 10. The method of claim 5, wherein the branching causes abinary digit for which the threshold check fails to be set to binary 0in a first of the two candidate decoded sequences, and set to binary 1in a second of the two candidate decoded sequences.
 11. The method ofclaim 1: wherein the encoded sequence is received over a radiopropagation channel; wherein the method comprises: obtaining a channelestimate of the radio propagation channel; and determining the list sizeand/or how many PUs to decode the encoded sequence until its firstbranching based on the channel estimate.
 12. The method of claim 1,further comprising: repeating the successive decoding until all binarydigits of the encoded sequence have been decoded, resulting in at leasttwo candidate decoded sequences; and discarding all but one of the atleast two candidate decoded sequences, resulting in one single decodedsequence.
 13. The method of claim 1, wherein the factor is at leastthree quarters of the given lists size.
 14. An information decoder fordecoding an encoded sequence into a decoded sequence, the informationdecoder comprising: processing circuitry; memory containing instructionsexecutable by the processing circuitry whereby the information decoderis operative to: obtain the encoded sequence, the encoded sequencehaving been encoded using a polar code; and successively decode theencoded sequence into the decoded sequence; wherein the decoding isperformed for a given list size (LS) defining how many candidate decodedsequences in total the thus far decoded sequence is allowed to branchinto during the decoding, wherein LS>1; and wherein the encoded sequenceis decoded, until its first branching, by at least as many processingunits (PUs) in parallel as a factor of the given list size; wherein thefactor is at least half the given list size.
 15. The information decoderof claim 14: wherein each branching results in two candidate decodedsequences; wherein the instructions are such the information decoder isoperative to decode the two candidate decoded sequences in parallel by arespective subset of the PUs; and wherein each subset comprises half asmany PUs as before the each branching.
 16. The information decoder ofclaim 15, wherein the instructions are such the information decoder isoperative to branch the decoded sequence into two candidate decodedsequences whenever a threshold check fails, the threshold check beingperformed on binary digits as being decoded.
 17. The information decoderof claim 16, wherein the instructions are such the information decoderis operative to perform the threshold check for binary digits on fixedplaces as being decoded.
 18. The information decoder of claim 16,wherein the instructions are such the information decoder is operativeto perform the threshold check for at least some successive binarydigits as being decoded.
 19. The information decoder of claim 17,wherein the instructions are such the information decoder is operativeto, when performing the threshold check, evaluate a bit uncertaintycriterion of those binary digits that are being decoded.
 20. Anon-transitory computer readable recording medium storing a computerprogram product for controlling an information decoder to decode anencoded sequence into a decoded sequence, the computer program productcomprising program instructions which, when run on processing circuitryof the information decoder, causes the information decoder to: obtainthe encoded sequence, the encoded sequence having been encoded using apolar code; and successively decode the encoded sequence into thedecoded sequence; wherein the decoding is performed for a given listsize (LS) defining how many candidate decoded sequences in total thethus far decoded sequence is allowed to branch into during the decoding,wherein LS>1; and wherein the encoded sequence is decoded, until itsfirst branching, by at least as many processing units (PUs) in parallelas a factor of the given list size; wherein the factor is at least halfthe given list size.